package top.healthylife.gateway.platform.br.api.utils;//package com.hare.service.utils;
//
//
//
//
//
//
//
//
//
//
//import cn.hutool.core.util.ClassUtil;
//import cn.hutool.core.util.ObjectUtil;
//
//
//import lombok.SneakyThrows;
//import org.apache.ibatis.transaction.Transaction;
//
//import java.lang.reflect.Field;
//import java.util.*;
//import java.util.stream.Collectors;
//
///**
// * @author : GaoZeXi
// * @Date 2021/1/4 16:55
// */
//public class TestUtil {
//    static final String PACKAGE_NAME = "com.hare.service";
//
//    static final String DATA ="SpecialList_c\t特殊名单验证\t1.0\n" +
//            "scoreautolea\t信用风险识别-汽车金融\t4.0\n" +
//            "scoreautofin\t信用风险识别-汽车金融-主车厂\t4.0\n" +
//            "scorecreditbt\t信用卡代偿\t3.1\n" +
//            "scoreafconsoff\t反欺诈风险识别-线下消费分期\t2.0\n" +
//            "scoreafcashon\t反欺诈风险识别-线上现金分期\t3.0\n" +
//            "scoreafautofin\t反欺诈风险识别-汽车金融\t2.0\n" +
//            "IdTwo_z\t身份证二要素验证\t\n" +
//            "Transaction\t多笔交易验证查询\t\n" +
//            "BankThree_s\t银行卡三要素基础版\t\n" +
//            "DrivelicQuery\t驾驶证信息查询\t\n" +
//            "TelPeriod\t手机在网时长-移动联通电信\t\n" +
//            "TelStatus\t手机在网状态-移动联通电信\t\n" +
//            "TelConsume\t手机消费档次\t\n" +
//            "PayBehavior\t支付消费行为偏好信息识别\t\n" +
//            "VehLicCheck\t行驶证基本信息验证\t\n" +
//            "BankFour_s\t银行卡四要素基础版\t\n" +
//            "NewCarPrice\t新车指导价\t\n" +
//            "BadInfo\t自然人识别\t\n" +
//            "TelPosition\t手机实时城市位置验证\t\n" +
//            "DrivingCheck\t行驶证信息查询\t\n" +
//            "CarValuation\t二手车估值\t\n" +
//            "scoreconson\t信用风险识别-线上消费分期\t4.1\n" +
//            "Execution\t法院被执行人-个人版\t1.0\n" +
//            "KeyAttribution\t身份证号手机号归属地\t1.0\n" +
//            "SpecialList_c\t特殊名单验证\t2.0\n" +
//            "TotalLoan\t借贷行为验证\t1.0\n" +
//            "Stability_c\t稳定性指数\t2.0\n" +
//            "LocationVer\t职居地验证\t1.0\n" +
//            "Consumption_c\t商品消费指数\t3.0\n" +
//            "CompanyVer\t单位验证\t1.0\n" +
//            "PersonalCre\t个人资质-基础版\t1.0\n" +
//            "ApplyLoanStr\t借贷意向验证\t2.0\n" +
//            "InfoRelation\t实名信息验证\t2.0\n" +
//            "ApplyLoan_d\t借贷意向验证-当日版\t2.0\n" +
//            "PayConsumption\t支付消费信息识别-月度版\t1.0\n" +
//            "Location\t地址信息验证\t2.0\n" +
//            "ApplyLoanMon\t借贷意向验证-月度版\t2.0\n" +
//            "NetShopping\t消费指数\t2.0\n" +
//            "Media_c\t媒体阅览指数\t2.0\n" +
//            "FraudRelation_g\t团伙欺诈排查（通用版）\t1.0\n" +
//            "scoreafrevoloan\t反欺诈风险识别-信用卡（类信用卡）\t2.0\n" +
//            "scorecashon\t信用风险识别-线上现金分期\t4.0\n" +
//            "scorecashoff\t信用风险识别-线下现金分期\t4.0\n" +
//            "scoreconsoff\t信用风险识别-线下消费分期\t4.0\n" +
//            "scorerevoloan\t信用风险识别-信用卡（类信用卡）\t4.0\n" +
//            "SpecialList_c\t货车帮特殊名单验证\t5.0\n" +
//            "RuleSpecialList\t货车帮反欺诈规则-特殊名单\t5.0\n" +
//            "TelCheck_s\t手机三要素简版—移动联通电信\t";
//
//
//
//    public static void main(String[] args) {
//
//        List<Map<String, Object>> maps = splitData();
//        print(maps);
//
//        //获取parentFace所有的实现类
//        List<Class<?>> faces = ClassUtil.scanPackageBySuper(PACKAGE_NAME, ParentFace.class)
//                .stream().sorted(Comparator.comparing(Class::toString)).collect(Collectors.toList());
//        List<Map<String, Object>> collect = faces.stream().map(face -> {
//            Map<String, Object> api = new HashMap<>();
//            String name = face.getName();
//            ApiServiceExplain apiServiceExplain = face.getAnnotation(ApiServiceExplain.class);
//            String apiName = apiServiceExplain.apiName();
//            String apiIdentification = "";
//            String version = "";
//            try {
//                Field field = face.getDeclaredField("APIIDENTIFICATION");
//                field.setAccessible(true);
//                apiIdentification = field.get(null).toString();
//                Field versionField = face.getDeclaredField("VESION");
//                versionField.setAccessible(true);
//                Object o = versionField.get(null);
//                version = o==null?"":o.toString();
//
//            } catch (IllegalAccessException e) {
//                e.printStackTrace();
//            } catch (NoSuchFieldException noSuchFieldException) {
//                noSuchFieldException.printStackTrace();
//            }
//            api.put("apiName", apiName);
//            api.put("apiIdentification", apiIdentification);
//            api.put("version", version);
//            return api;
//        }).collect(Collectors.toList());
//
//        print(collect);
//
//        compareList(maps,collect);
//    }
//
//
//    public static List<Map<String,Object>> splitData(){
//        List<Map<String,Object>> list = new ArrayList<>();
//        String[] split = DATA.split("\n");
//        for (String split1 : split) {
//            String[] s = split1.split("\t", -1);
//            HashMap<String, Object> map = new HashMap<>(16);
//            map.put("apiName",s[1]);
//            map.put("apiIdentification",s[0]);
//            map.put("version",s[2]);
//            list.add(map);
//        }
//        return list;
//    }
//
//    public static void print(List<Map<String, Object>> list){
//        list.forEach(e->{
//            System.out.println("e = " + e);
//        });
//        System.out.println("##########");
//    }
//
//    public static void compareList(List<Map<String,Object>> list1,List<Map<String,Object>> list2){
//        for (Map<String, Object> stringObjectMap : list1) {
//            String key1 = stringObjectMap.get("apiName").toString();
//            String key2 = stringObjectMap.get("apiIdentification").toString();
//            for (Map<String, Object> objectMap : list2) {
//                String apiName = objectMap.get("apiName").toString();
//                String apiIdentification = objectMap.get("apiIdentification").toString();
//                 if(apiName.equals(key1)){
//                     //比较apiIdentification
//                     if (!apiIdentification.equals(key2)) {
//                         System.out.println(String.format("%s 接口不一致,库中的apiIdentification = [%s],代码中的apiIdentification=[%s]",apiName,key2,apiIdentification));
//                     }
//                 }
//            }
//        }
//    }
//}
